package br.ufpb.di.ppgi.negocio.modelo.homologacao.defesa;

import java.io.Serializable;

import javax.persistence.Embeddable;
import javax.persistence.ManyToOne;

import br.ufpb.di.ppgi.negocio.modelo.defesa.Defesa;
import br.ufpb.di.ppgi.negocio.modelo.usuario.Usuario;

@Embeddable
public class HomologacaoDefesaPK implements Serializable{
	private static final long serialVersionUID = 2929205035086001097L;

	@ManyToOne(optional=false)
//	@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.MERGE})
	private Defesa defesa;

	@ManyToOne(optional=false)
//	@Cascade(value={CascadeType.SAVE_UPDATE,CascadeType.MERGE})
	private Usuario colegiado;

	public HomologacaoDefesaPK() {
		
	}
	
	public HomologacaoDefesaPK(Defesa defesa, Usuario colegiado) {
		this.defesa = defesa;
		this.colegiado = colegiado;
	}

	public Defesa getDefesa() {
		return defesa;
	}

	public void setDefesa(Defesa defesa) {
		this.defesa = defesa;
	}

	public Usuario getColegiado() {
		return colegiado;
	}

	public void setColegiado(Usuario colegiado) {
		this.colegiado = colegiado;
	}
	
	@Override
	public int hashCode() {
		int hash = 0;
		hash += defesa == null ? 0 : defesa.hashCode();
		hash += colegiado == null ? 0 : colegiado.hashCode();
		return hash;
	}
	
	@Override
	public boolean equals(Object object) {
		if(!(object instanceof HomologacaoDefesaPK)) {
			return false;
		}
		HomologacaoDefesaPK other = (HomologacaoDefesaPK) object;
		if(this.defesa == null || !this.defesa.equals(other.defesa))
			return false;
		if(this.colegiado == null || !this.colegiado.equals(other.colegiado))
			return false;
		return true;
	}
}
